package com.kaifamiao.trace;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet( "/user/sign/in/action" )
public class UserSignInActionServlet extends HttpServlet {

    @Override
    protected void service( HttpServletRequest request , HttpServletResponse response )
            throws ServletException, IOException {

        request.setCharacterEncoding( "UTF-8" );

        // 从登录表单中获取用户输入的数据
        String username = request.getParameter( "username" );
        String password = request.getParameter( "password" );

        HttpSession session = request.getSession();

        if( username == null || username.trim().isEmpty() ) {
            // 通过会话对象保存提示信息
            session.setAttribute( "message" , "用户名不可以为空" );
            // 自动去往登录页面
            response.sendRedirect( "/user/sign/in/page" );
            return;
        }

        if( password == null || password.trim().isEmpty() ) {
            // 通过会话保存用户名
            session.setAttribute( "username" , username.trim() );
            // 通过会话对象保存提示信息
            session.setAttribute( "message" , "密码不可为空" );
            // 自动去往登录页面
            response.sendRedirect( "/user/sign/in/page" );
            return;
        }

        // 如果用户输入的用户名不是 kaifamiao
        if( !"kaifamiao".equals( username ) ){
            // 通过会话保存用户名
            session.setAttribute( "username" , username.trim() );
            // 通过会话对象保存提示信息
            session.setAttribute( "message" , "用户名错误" );
            // 自动去往登录页面
            response.sendRedirect( "/user/sign/in/page" );
            return;
        }

        if( !"kfm2021".equals( password ) ){
            // 通过会话保存用户名
            session.setAttribute( "username" , username.trim() );
            // 通过会话对象保存提示信息
            session.setAttribute( "message" , "密码错误" );
            // 自动去往登录页面
            response.sendRedirect( "/user/sign/in/page" );
            return ;
        }

        /** - - - - - - -  准予登录 - - - - - - - **/
        // 未来是根据用户名和密码查询数据库得到 User对象 (目前先创建一个User对象)
        User user = new User( username , password );
        // 将 user 对象作为属性值保存到 会话对象中
        session.setAttribute( "user" , user );
        // 自动跳转到 欢迎页面
        response.sendRedirect( "/user/welcome/page" );

    }

}
